package dr.ihm;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.BoxLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JViewport;

import data.Game;
import dr.moteur.GameEngine;
import dr.moteur.GameEngineClient;

public class Window implements KeyListener{

	private static final long serialVersionUID = 1L;

	public JFrame frame;
	/**
	 * 
	 */
	static public F_Jeu f_jeu;
	/**
	 * 
	 */
	static public F_Start f_start;
	public String title;
	public int temps;
	//public JMenuBar barreDeMenu;
	public JMenu tps;
	public JMenu arg;
	public int argent;
	public JPanel map;
	public JMenu position;
    public int w_frame, h_frame;
	public GameEngine GE;
	public BarreDeMenu barreStart;
	public BarreDeMenu barreJeu;
    
	
	/**
	 * La Classe Window permet de creer les 2 fenetres, frames, contenant d'une part l'interface de creation de jeu et de l'autre l'interface de jeu
	 * C'est cette classe qui gere le menu commun a toutes les fenetres.
	 * 
	 * CONSTRUCTEUR
	 * 
	 * @param title  titre de la fenetre
	 * @param width  largeur de la fenetre
	 * @param height  hauteur de la fenetre
	 * @param GE  Moteur du jeu
	 */
	public Window(String title, int width,int height, GameEngineClient GE){
		
		// CREATION DU MENU 
		barreStart = new BarreDeMenu();
		barreJeu = new BarreDeMenu();
		
		this.temps = 0;
		this.argent = 0;
		this.GE = GE;
		
		
		// CREATION DES 2 FENETRES
		 f_jeu = new F_Jeu (GE, this, width, height, barreJeu);
		 f_start = new F_Start (GE, this, width, height, barreStart);
		
		
	}
	
	
	/*
	 * 
	 * Set_start_ihm permet d'afficher la fenetre de creation de jeu et de s'assurer que la fenetre de jeu est desactivee
	 * 
	 * */
	static public void set_start_ihm () {
		//System.out.println("Fenetre IHM CREA JEU");
		f_start.setVisible();
		f_jeu.setUnVisible();
	}
	
	/*
	 * 
	 * Set_jeu_ihm permet d'afficher la fenetre du jeu et de cacher celle de creation de partie.
	 * */
	public void set_jeu_ihm () {
		//System.out.println("Fenetre IHM JEU");
		f_start.setUnVisible();
		f_jeu.setVisible();
	}
	

	public void keyPressed(KeyEvent e) {
			// TODO Auto-generated method stub
	        int keyCode = e.getKeyCode();
	        System.out.println(keyCode);
		}



/*
///////////////////////
	public void mousePressed(MouseEvent e) {
		// TODO Auto-generated method stub
		
		System.out.println("MOUSEPRESSED");
		
		//if((e.getModifiers() & InputEvent.BUTTON1_MASK) == InputEvent.BUTTON1_MASK){
			temps = temps+1;
			tps.setText(null);
			tps.setText("Temps : "+temps);
			position.setText(null);
			position.setText("Position : x = "+e.getX()+"; y = "+e.getY());
			System.out.println("x = "+e.getX());
			System.out.println("y = "+e.getY());
///////////////////
			*/
	


/*
//////////////////////////////
	public void mouseReleased(MouseEvent e) {
		// TODO Auto-generated method stub
		


		System.out.println("on entre");
		
	}
	
	public void mouseMotion(MouseEvent e){
		
		
	}
///////////////////////////////
	*/




	
	public static void main(String[] args) {
		//Window window = new Window("Desert Rush",1440,900);
		//GameSetup gs = new GameSetup("map/test.xml", null);
		Game.main(null);
	}


	@Override
	public void keyReleased(KeyEvent e) {
		// TODO Auto-generated method stub
		
	}


	@Override
	public void keyTyped(KeyEvent e) {
		// TODO Auto-generated method stub
		
	}


}
